From patterns to frameworks to parallel programs

نویسندگان

  • Steve MacDonald
  • John Anvik
  • Steven Bromling
  • Jonathan Schaeffer
  • Duane Szafron
  • Kai Tan
چکیده

Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. This paper describes our approach of applying these techniques to the more difficult domain of parallel programming. We combine these three abstraction techniques with a fourth kind of abstraction, programming layers. The result is the Parallel Design Patterns (PDP) process, a new approach to parallel programming that better matches the needs of parallel programmers. The programmer starts by selecting a parallel design pattern that matches the structure of the target application. The system presents the programmer with a pattern template that includes several parameters that can be set to match the requirements of the specific application. After the programmer selects the domain-specific parameters of the pattern template, the system generates a custom framework that encapsulates all of the parallel structure, including synchronization and communication code. The generated code serves as the highest of three layers of application code. At this layer, parallel structure correctness is guaranteed. Lower layers are used only for performance tuning to make the code as efficient as necessary. In addition to the PDP process, this paper briefly describes a parallel programming system called CO2P3S that implements the process. We use two example applications to illustrate the process and the CO2P3S system.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Object-Oriented Pattern-Based Parallel Programming with Automatically Generated Frameworks

The CO2P3S parallel programming system uses design patterns and object–oriented programming to reduce the complexities of parallel programming. The system generates correct frameworks from pattern template specifications and provides a layered programming model to address both the problems of correctness and openness. This paper describes the highest level of abstraction in CO2P3S, using two ex...

متن کامل

Generating Parallel Programs from the Wavefront Design Pattern

Object-oriented programming, design patterns, and frameworks are common techniques that have been used to reduce the complexity of sequential programming. We have applied these techniques to the more difficult domain of parallel programming. This paper describes CO2P3S, a pattern-based parallel programming system that generates parallel programs from parallel design patterns. We demonstrate CO2...

متن کامل

PALLAS: Mapping Applications onto Manycore

Parallel programming using the current state-of-the-art in software engineering techniques is hard. Expertise in parallel programming is necessary to deliver good performance in applications; however, it is very common that domain experts lack the requisite expertise in parallel programming. In order to drive the computer science research toward effectively using the available parallel hardware...

متن کامل

دگرگونی سیمای سلامت در ایران

Background and objectives: Data on transitions in health status are among the most important types of information used for promotion of health and social development. Health transition comprises two elements: demographic and epidemiologic transition. This paper depicts the health transition in I.R. Iran over the last few decades. Methods: We used demographic data gathered over the last 45 ye...

متن کامل

Runtime Support for Dynamic Skeletons Implementation

Algorithmic skeletons have proved to be a good solution to the problem of implementing parallel applications with specify communication structures. They define the overall structure of the computation, hiding the complex communication details. Nowadays, the different frameworks available offer a fixed set of skeletons. The programmer can implement efficient programs if the computation and commu...

متن کامل

TaskUniVerse: A Task-Based Unified Interface for Versatile Parallel Execution

Task based parallel programming has shown competitive outcomes in many aspects of parallel programming such as efficiency, performance, productivity and scalability. Different approaches are used by different software development frameworks to provide these outcomes to the programmer, while making the underlying hardware architecture transparent to her. However, since programs are not portable ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Parallel Computing

دوره 28  شماره 

صفحات  -

تاریخ انتشار 2002